<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // reduce 方法，数组的求和方法

    let arr = [2,3,4,5]
    // 语法1：有初始值
    // let res1 = arr.reduce((总和,当前元素) => {
    //   return 累积的式子
    // },初始值)

      // let res1 = arr.reduce((t,c) =>{
      //   // 第一次循环： t = 100; c = 2  返回100 + 2 = 102
      //   // 第二次循环： t  =102；c = 3  返回102 + 3 = 105
      //   // 第三次循环： t = 105; c = 4  返回105 + 4 = 109
      //   // 第四次循环： t = 109; c = 5  返回109 + 5 = 114

      //   return t + c
      // },100)
      // console.log(res1);




    // 语法2：没有初始值
    // let res2 = arr.reduce((总共,数组元素) => {
    //   return 累积的式子
    // })

    // let res2 = arr.reduce((t,c) =>{
    //   // 因为没有初始值，所有开始的时候， t = 第一个元素 ， c = 第二个元素
    //   // 第一次循环： t = 2; c = 3; 返回2 + 3 = 5
    //   // 第2次循环:   t = 5; c = 4; 返回 5+4 = 9
    //   // 第三次循环：t = 9;= 5;返回9+5=14

    //   return t + c
    // })
    // console.log(res2);


    // 实例：
    let list = [
      {id:21, subject:'语文', score:90},
      {id:32, subject:'数学', score:100},
      {id:35, subject:'艺术', score:100},

    ]
    // let res = list.reduce((t,c) =>{},初始值)
    let res = list.reduce((t,c) =>{
      // 有初始值， t = 0， c = 第一个元素
      // 第一次循环： t = 0; c = 第一个元素  返回 0 + 90 = 90
      // 第2次循环: t = 90; c = 第2个元素; 返园 90 + 100 = 190
      // 第3次循环: t = 190;c = 第3个元素: 返回 190 + 100 = 290
      return t + c.score
    },0)
    console.log(res);
  </script>
</body>
</html>